1. Field of the Invention
This invention relates to large computer storage controller collections. More specifically, this invention relates to performance-based volume allocation in a storage controller collection with respect to time sensitive storage access services.
2. Background
Performance-based volume allocation in a storage system is the task of determining where to allocate volumes for a workload based on the workload profile in terms of space and performance requirements and the current performance numbers at the various components of the storage controllers in the system. This task becomes more challenging as the storage sizes increase, the number of disks per controller increases, and the number of controllers in the system increases. Current single controller algorithms do not scale well with the increasing sizes and hence are not suitable for large dynamic storage control scenarios. Furthermore, conventional controller algorithms introduce large variances among system components.
Current storage controllers are sophisticated devices which can be modeled as a hierarchy of components where each component has its performance constraints. By modeling the storage controller as a hierarchy of components, i.e. a resource graph model, dependencies between the hardware components in a storage controller may be captured. In one embodiment, each of the components in the resource graph model is referred to as a node. The current space and performance numbers for each component are obtained to ensure that no component in the hierarchy is overloaded. Overloading of a single component in the hierarchy can disrupt workloads assigned to the storage pools associated with the component. Workload profiles for new workloads may be used to predict the space and performance requirements for new workloads. Other factors such as minimum and maximum permissible or required logical volume sizes can also impact the workload assignment decision making process. The existing performance numbers along with the workload profiles and other factors mentioned above may be taken into account to determine suitable storage controller components for creating volumes for allocating the new workloads.
Conventional algorithms for storage volume allocation introduce a large variance among system components, leading to heavy loads on some components in the storage controller resource hierarchy. Greedy or random assignment algorithms lead to poor allocations resulting in unbalanced systems as they fail to consider load balancing for system components higher in the hierarchy of the resource graph. As system components, i.e. nodes, higher in the resource graph hierarchy are responsible for larger number of workloads compared to system components lower in the hierarchy, any overloading of these components can lead to poor overall system performance. Some systems and methods have been developed in the area of storage control and resource allocation.
There is a need in the art for programs, methods and systems to allocate storage volumes in a distributed storage system with improved performance. Further, there is a need for such programs, methods, and systems to employ an algorithm for allocating volumes in large storage controller collections that is scalable and performance-based. Such needs should address load on system components in the storage hierarchy during specific periods of time. These and other needs are met by the present invention as detailed hereafter.